import { Module } from '@nestjs/common';
import { UserService } from './user.service';
import { UserController } from './user.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './entities/user.entity';
import { AuthModule } from 'src/auth/auth.module';
import { NotifyModule } from 'src/notify/notify.module';
import { SmsCaptchaService } from 'src/sms-captcha/sms-captcha.service';
import { FileModule } from 'src/file/file.module';
import { UserQueueConsumer } from './queue-consumer';
import { BullModule } from '@nestjs/bull';

/*
  队列相关配置：
  limiter: { max: 10, duration: 1000 }
    在 1秒 的时间窗口内，最多只能处理 10 个任务；
    如果不配置就是没有速率限制，尽可能快的处理，即无并发限制
    Redis相关配置在app中已配置
*/
@Module({
    imports: [
        TypeOrmModule.forFeature([User]),
        AuthModule,
        FileModule,
        NotifyModule,
        BullModule.registerQueue({name: 'user'}),
    ],
    controllers: [UserController],
    providers: [UserService, SmsCaptchaService, UserQueueConsumer],
    exports: [UserService],
})
export class UserModule {}
